home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The PC-SIG Library 9
/
The PC-SIG Library on CD ROM - Ninth Edition.iso
/
2101_200
/
DISK2170
/
DISK2170.ZIP
/
PC_SUMRY
< prev
next >
Wrap
Text File
|
1989-11-13
|
10KB
|
344 lines
/*****************************************************************************
pc_sumry
personal computer utilities function summary
Luis Larzabal November 11, 1989
Included are a few examples of, cursor (), painta (), and boxc (), for
curiosities sake. The implementation of all these interrupt calls are generic
and your intuition should guide you to it's multiple possibilities.
*****************************************************************************/
rd_vmod () /* read current video mode | pg.182 */
/*-----------------------------------------------*/
rd_adp () /* read current active display page | pg.182 */
/*-----------------------------------------------*/
rd_row () /* read cursor row position | pg.175 */
/*-----------------------------------------------*/
rd_col () /* read cursor col position | pg.175 */
/*-----------------------------------------------*/
rd_vchar (page) /* read character @ cursor position | pg.177 */
unsigned int page; /* video page number ; normally rd_vchar(0), */
/* or use rd_vchar(rd_adp()) */
/*-----------------------------------------------*/
rd_attr (page) /* read attribute @ cursor position | pg.177 */
unsigned int page; /* video page number ; normally rd_vchar(0), */
/* or use rd_vchar(rd_adp()) */
/*-----------------------------------------------*/
wr_vmod (mode) /* write video mode | pg.172 */
unsigned int mode; /* see fig.9-2 on pg.172 */
/*-----------------------------------------------*/
wr_adp (page) /* write active display page | pg.176 */
unsigned int page; /* video page number ; normally wr_adp(0) */
/*-----------------------------------------------*/
wr_tty (charac) /* write char in TTY mode | pg.182 */
unsigned char charac; /* character to write */
/*-----------------------------------------------*/
cls () /* clear monochrome screen | pg.173 */
/*-----------------------------------------------*/
cursor (row, col) /* write cursor position | pg.174 */
/* 0 <= row <= 24 (to make visible) */
/* 0 <= col <= 79 (to make visible) */
/* upper left = 0,0 ; bottom right = 24,79 */
unsigned int row;
unsigned int col;
cursor (0, 0); /* cursor @ home */
cursor (24, 79); /* cursor @ bottom right */
cursor (11, 39); /* cursor @ middle */
cursor (rd_row()+2, rd_col()+3); /* move relative */
/*-----------------------------------------------*/
cursor_status (mode) /* monochrome cursor ON or OFF | pg.173 */
/* ON = 1 ; OFF = 0 */
unsigned int mode; /* cls() resets cursor ON */
/*-----------------------------------------------*/
paintc (row, col, charac, attrib, repeat) /* write char & attribute, */
/* 'repeat' times | pg.178 */
/* @ row & col, does not advance cursor */
unsigned int row; /* row position */
unsigned int col; /* col position */
unsigned char charac; /* character to write */
unsigned int attrib; /* character attribute */
unsigned int repeat; /* character repeat ( >0 ) */
/*-----------------------------------------------*/
painta (row, col, attrib, repeat) /* write attribute 'repeat' times | pg.178 */
unsigned int row; /* row position */
unsigned int col; /* col position */
unsigned int attrib; /* character attribute */
unsigned int repeat; /* character repeat ( > 0) */
painta (0, 0, HII, 80); /* top row hi-intensity (non-destructive) */
painta (rd_row(), 0, UND, 80); /* underline present row */
/*-----------------------------------------------*/
paints (row, col, string, attrib, repeat) /* write attribute 'repeat' times */
/* and then string */
/* @ row & col, does not advance cursor */
unsigned int row; /* row position */
unsigned int col; /* col position */
char *string; /* string to write */
unsigned int attrib; /* character attribute */
unsigned repeat; /* character repeat ( > 0) */
/*-----------------------------------------------*/
boxc (row, col, x, y, charac, attrib) /* make box with 'charac' outline */
unsigned int row; /* upper right corner row value */
unsigned int col; /* upper right corner column value */
unsigned int x; /* box horizontal length */
unsigned int y; /* box vertical length */
unsigned char charac; /* character for box outline */
unsigned int attrib; /* box outline attribute */
boxc (10, 5, 8, 8, '*', REV); /* 8x8 box of reverse video stars */
/*-----------------------------------------------*/
hlinec (row, col, x, charac, attrib) /* 'charac' horizontal line */
unsigned int row;
unsigned int col;
unsigned int x;
unsigned char charac;
unsigned int attrib;
/*-----------------------------------------------*/
vlinec (row, col, y, charac, attrib) /* 'charac' vertical line */
unsigned int row;
unsigned int col;
unsigned int y;
unsigned char charac;
unsigned int attrib;
/*-----------------------------------------------*/
hbarc (row, col, x, charac, attrib) /* 'charac' horizontal bar */
unsigned int row;
unsigned int col;
unsigned int x;
unsigned char charac;
unsigned int attrib;
/*-----------------------------------------------*/
vbarc (row, col, y, charac, attrib) /* 'charac' vertical bar */
unsigned int row;
unsigned int col;
unsigned int y;
unsigned char charac;
unsigned int attrib;
/*-----------------------------------------------*/
box1 (row, col, x, y, attrib) /* make single-lined box */
unsigned int row; /* see boxc */
unsigned int col;
unsigned int x;
unsigned int y;
unsigned int attrib;
/*-----------------------------------------------*/
hline1 (row, col, x, attrib) /* single-lined horizontal line */
unsigned int row;
unsigned int col;
unsigned int x;
unsigned int attrib;
/*-----------------------------------------------*/
vline1 (row, col, y, attrib) /* single-lined vertical line */
unsigned int row;
unsigned int col;
unsigned int y;
unsigned int attrib;
/*-----------------------------------------------*/
box2 (row, col, x, y, attrib) /* make double-lined box */
unsigned int row; /* see boxc */
unsigned int col;
unsigned int x;
unsigned int y;
unsigned int attrib;
/*-----------------------------------------------*/
hline2 (row, col, x, attrib) /* double-lined horizontal line */
unsigned int row;
unsigned int col;
unsigned int x;
unsigned int attrib;
/*-----------------------------------------------*/
vline2 (row, col, y, attrib) /* double-lined vertical line */
unsigned int row;
unsigned int col;
unsigned int y;
unsigned int attrib;
/*-----------------------------------------------*/
hlinet (row, col, x, attrib) /* 2-to-1 T horizontal line */
unsigned int row;
unsigned int col;
unsigned int x;
unsigned int attrib;
/*-----------------------------------------------*/
vlinet (row, col, y, attrib) /* 2-to-1 T vertical line */
unsigned int row;
unsigned int col;
unsigned int y;
unsigned int attrib;
/*-----------------------------------------------*/
box3 (row, col, x, y, attrib) /* make 3-dimensional box */
unsigned int row; /* see boxc */
unsigned int col;
unsigned int x;
unsigned int y;
unsigned int attrib;
/*-----------------------------------------------*/
prt_scrn () /* send screen contents to printer | pg.245 */
/*-----------------------------------------------*/
rd_keystroke () /* read next keystroke | pg.216 */
/* or wait until one present */
/* also empties the keybd buffer */
/*-----------------------------------------------*/
rd_scancode () /* read next scan code | pg.216 */
/* or wait until one present */
/* also empties the keybd buffer */
/*-----------------------------------------------*/
rd_string (dest_buf, max_length) /* read string from keyboard */
char *dest_buf; /* pointer to destination buffer */
int max_length; /* maximum string length */
/*-----------------------------------------------*/
keybuffer_stat () /* reports presence of keystroke | pg.217 */
/* returns "1" if TRUE */
/* returns "0" if FALSE */
/*-----------------------------------------------*/
keybuffer_char () /* reports waiting keystroke | pg.217 */
/* returns ASCII value */
/* returns 0 if none */
/*-----------------------------------------------*/
keybuffer_scan () /* reports waiting scan code | pg.217 */
/* returns scan code value */
/* returns 0 if none */
/*-----------------------------------------------*/
window_afill (row, col, x, y, attrib) /* fills window area with attrib */
unsigned int row;
unsigned int col;
unsigned int x;
unsigned int y;
unsigned int attrib;
/*-----------------------------------------------*/
window_cfill (row, col, x, y, charac, attrib) /* fills window area with */
/* charac & attrib */
unsigned int row;
unsigned int col;
unsigned int x;
unsigned int y;
unsigned char charac;
unsigned int attrib;
/*-----------------------------------------------*/
window_clear (row, col, x, y) /* clears window area content */
/* sets window area attribute to NOR */
unsigned int row;
unsigned int col;
unsigned int x;
unsigned int y;
/*-----------------------------------------------*/
window_save (row, col, x, y, buffer)
/* save window area contents to an array */
/* char values and attributes are paired */
unsigned int row; /* must declare: char array[4000] */
unsigned int col; /* in calling program, to which *buffer */
unsigned int x; /* writes (80x25x2=4000 positions) */
unsigned int y;
unsigned char *buffer; /* char array pointer for save operation */
/*-----------------------------------------------*/
window_restore (row, col, x, y, buffer) /* restore window area contents */
/* see window_save () */
unsigned int row;
unsigned int col;
unsigned int x;
unsigned int y;
unsigned char *buffer; /* char array pointer from save operation */
/*-----------------------------------------------*/